Sri Lanka were staring down the barrel of their worst-ever Test defeat Saturday after Australia enforced the follow-on and made early inroads, dismissing their top three batters before lunch on day four.
The hosts were 75-3 and still trailing by 414 runs in Galle with Angelo Matthews not out on 34 at the crease after Dinesh Chandimal's dismissal on the last ball before the break.
Sri Lanka's heaviest defeat to date came in Nagpur in 2017, when they were hammered by an innings and 239 runs by India.
Oshada Fernando failed to make an impact in his return to the side undone by a sharp inswinger from Mitchell Starc that trapped him plumb in front for six to go with his first innings seven.
Former skipper Dimuth Karunaratne's horror run with the bat continued after an avoidable dismissal for naught from Todd Murphy.
Expecting it to turn, he watched in disbelief as the ball clipped the bails and walked back to the pavilion, with head bowed and shoulders slumped.
Chandimal fought on, stitching together Sri Lanka's first 50-plus partnership of the match with Mathews before he was sent back for 31 when he gloved Nathan Lyon to Travis Head at short leg.
Resuming overnight at 136-5, Chandimal (72) put up a solitary fight in the first innings before Sri Lanka were dismissed for just 165, losing their last five wickets for a paltry nine runs.
Sri Lanka were put straight back in to bat chasing 489 after a five-wicket haul from Australian spinner Matthew Kuhnemann.
Rain forced an early lunch on day three before washing out the final two sessions.
Australia declared on 654-6 late on the second day after opener Usman Khawaja's career-best 232.
Galle will also host the second and final match of the series next week before a two-match ODI series in Colombo.
str/gle/mtp